﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using TableTop.DataManagement.Addon;

namespace TableTop.DataModel.Shelf
{
    [DataContract(Namespace="http://www.tabletop.net/GenericRPG/Shelf")]
    public class CSGenericSheetData
        : ICharacterSheetData
    {

        #region ICharacterSheet Members

        [DataMember]
        public Guid SheetID
        {
            get;
            set;
        }

        [DataMember]
        public string Name
        {
            get;
            set;
        }

        [DataMember]
        public String Notes
        {
            get;
            set;
        }

        [DataMember]
        public int Level
        {
            get;
            set;
        }

        [DataMember]
        public string Class
        {
            get;
            set;
        }

        [DataMember]
        public int XP
        {
            get;
            set;
        }

        [DataMember]
        public string Alignment
        {
            get;
            set;
        }

        [DataMember]
        public string Race
        {
            get;
            set;
        }

        [DataMember]
        public int Str
        {
            get;
            set;
        }

        [DataMember]
        public int Cos
        {
            get;
            set;
        }

        [DataMember]
        public int Dex
        {
            get;
            set;
        }

        [DataMember]
        public int Int
        {
            get;
            set;
        }

        [DataMember]
        public int Wis
        {
            get;
            set;
        }

        [DataMember]
        public int Cha
        {
            get;
            set;
        }

        #endregion

        public override string ToString()
        {
            String strToString = String.Empty;
            strToString = String.Format("Sheet ID {0}" +
                                        Environment.NewLine +
                                        "Name {1}" +
                                        Environment.NewLine +
                                        "Level: {2}" +
                                        Environment.NewLine,
                                        this.SheetID.ToString(),
                                        this.Name,
                                        this.Level);
            return strToString;
        }

        #region ITableTopAddonElement Members

        public Guid AddonID
        {
            get;
            internal set;
        }

        #endregion
    }
}
